package com.bot.nft.module.dc.domain.bo;

import com.bot.nft.module.dc.domain.vo.DcAuthorInfoVo;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 藏品信息业务模型
 */
@Data
public class DcNftInfoBo {

    /**
     * 藏品信息标识id
     */
    String id;

    /**
     * 藏品名称
     */
    @NotBlank(message = "藏品名称不可为空")
    String name;

    /**
     * 藏品封面
     */
    @NotBlank(message = "藏品封面不可为空")
    String cover;

    /**
     * 藏品封面
     */
    String coverName;

    /**
     * 藏品描述
     */
    String remark;

    /**
     * 藏品最低发售价格
     */
    BigDecimal lowPrice;

    /**
     * 藏品最高发售价格
     */
    BigDecimal highPrice;

    /**
     * 藏品发售价格
     */
    @NotNull(message = "藏品发售价格不可为空")
    BigDecimal price;

    /**
     * 藏品发行数量
     */
    @NotNull(message = "藏品发行数量不可为空")
    Integer publishNum;

    /**
     * 限购数量
     */
    Integer quota;

    /**
     * 藏品限购数量【定额】
     */
    Integer inventory;

    /**
     * 藏品发行类型
     */
    Integer type;

    /**
     * 开放二级市场时间
     */
    Date openTime;

    /**
     * 发售时间
     */
    Date saleTime;

    /**
     * 是否对外发售
     */
    Integer externalSales;

    /**
     * 白名单结束时间
     */
    Date whiteEnd;

    /**
     * 全民结束是时间
     */
    Date endTime;

    /**
     * 藏品状态
     */
    Integer status;

    /**
     * 创建人
     */
    String createUser;

    /**
     * 创建时间
     */
    Date createTime;

    /**
     * 更新人
     */
    String updateUser;

    /**
     * 更新时间
     */
    Date updateTime;

    /**
     * 创作者信息
     */
    DcAuthorInfoVo authorDcInfoBo;

    /**
     * 板块
     */
    private List<String> plates;

}
